1. Field
The following description relates to virtualization technology, and more particularly, to an apparatus and method for virtualizing an OS (operating system) kernel which is not virtualized.
2. Description of the Related Art
An OS (operating system) is an aggregate of programs providing an interface so that a user can more easily use hardware of a computer device such as a personal computer (PC), and it manages resources such as processors, storage devices, input and output devices, communication devices, data, and the like.
Meanwhile, users may install and use a plurality of OSs in a single system in accordance with purposes or needs. For example, Windows XP and LINUX are respectively installed in two regions which are logically divided in a single system storage medium, application programs supported by each of the OSs are installed on the corresponding OS and then booted into the OS desired by the computer device to thereby perform operations in the corresponding OS.
The way in which the plurality of OSs are installed to be booted into an OS selected by a user is referred to as multi-booting. However, in multi-booting, to convert from a predetermined OS to another OS, the computer device inconveniently has to be re-booted.
To overcome this problem, in the related art, virtualization technology that drives a plurality of OSs on a single platform has been proposed. More specifically, the virtualization technology in which a virtualization layer is formed on a host OS, or a virtual machine monitor or a hypervisor that directly provides the virtualization layer is provided, so that a plurality of logical virtual machines are generated on the virtualization layer. A guest operating program is installed in each of the plurality of virtual machines, and a program supported by the corresponding OS may be installed on each of guest OSs.
Examples of the virtualization technology are full-virtualization that does not require correction of the guest OS, and para-virtualization that requires correction of the guest OS so as to enhance performance, a minimum value, security, and the like, compared to an existing guest OS.
Full-virtualization performs virtualization by providing, to an OS kernel, an illusion that an interface and an environment provided in a system are completely provided. Here, it is very difficult to perform full-virtualization without access permission to a source code of the OS kernel, and a maintenance operation that is routinely performed each times there is a change in a kernel code requires additional development and testing even when access to the source code is permitted.
Para-virtualization involves recognizing virtualization by an OS regardless of hardware, and thus the OS is operated using an interface defined by a virtual machine monitor which is different from an existing hardware interface, and thereby the virtual machine monitor emulates a hardware interface, and monitoring for a code of the OS kernel is not required. As a result, there is less of a performance reduction due to the virtualization compared to full-virtualization, and a size of the virtual machine monitor is also reduced.
However, in the related art, porting in which the OS kernel performing a hardware operation is operated in the virtual machine monitor is required.
When virtualizing a system in the virtual machine monitor, the above-described full-virtualization is conveniently used and has low maintenance costs, but is sensitive to a performance or a function provided by hardware, and therefore it is difficult to apply full-virtualization in an environment sensitive to hardware resources.
However, since there is little use of hardware when performing para-virtualization, para-virtualization may be used in environments sensitive to hardware resources.